<?php

/**
 * @author 
 * @copyright 2008
 */
function parse_uri($url)
{
	global $db;
	$table_tree = PFX."site_tree";
	$request = explode("/", $url);
	$i=0;
	$parent=0;
	$parsed_url=array();
	foreach($request as $k=>$v)
	{
		$alias = $v;
		if($alias!='')
		{
			$detect_type = stristr($alias,'.html');
			$type=($detect_type===false?'1':'0');
			if($type=='0')
			{
				$alias = str_replace(".html", "", $alias);
				$part = $db->fetch_one("SELECT id,module,dir,type FROM $table_tree WHERE alias='$alias' AND pid='$parent' AND type='$type'");
				if($part!=false)
				{
					$parsed_url[$i]=$part;
					if(isset($chapter))
					{
						unset($parsed_url[$chapter]['over']);
					}
					$chapter = $i;$parsed_url[$chapter]['over'].="/";
					return $parsed_url;
				}
				elseif(isset($chapter))
				{
					$parsed_url[$chapter]['over'].=$alias."/";
					return $parsed_url;
				}
				else
				{
					$over = $alias;break;
				}
			}
			elseif($type=='1')
			{
				$part = $db->fetch_one("SELECT id,module,dir,type FROM $table_tree WHERE alias='$alias' AND pid='$parent' AND type='$type'");
				// если страница с таким альясом и родителем существует...
				if($part!=false)
				{
					$parsed_url[$i]=$part;
					if(isset($chapter))
					{
						unset($parsed_url[$chapter]['over']);
					}
					$chapter = $i;$parsed_url[$chapter]['over'].="/";
					$parent=$parsed_url[$i]['id'];
					$i++;
				}
				// если нет, но есть родительский модуль - возвращаем то, что нашли
				elseif(isset($chapter))
				{
					$parsed_url[$chapter]['over'].=$alias."/";
					//return $parsed_url;				
				}
				else
				{
					$over = $alias;break;
				}
			}
			
		}
	}
	if(empty($parsed_url))
	{
		$part = $db->fetch_one("SELECT id,module,dir FROM $table_tree WHERE id='0'");
		$parsed_url[$i]=$part;
		$parsed_url[$i]['over'] = $over;
	}
	return $parsed_url;
}
function admin_parse_uri($url)
{
	global $db;
	$table_tree = PFX."admin_tree";
	$request = explode("/", $url);
	unset($request[0],$request[1]);
	$i=0;
	$parent=0;
	$parsed_url=array();
	foreach($request as $k=>$v)
	{
		$alias = $v;
		if($alias!='')
		{
			$detect_type = stristr($alias,'.html');
			$type=($detect_type===false?'1':'0');
			if($type=='0')
			{
				$alias = str_replace(".html", "", $alias);
				$part = $db->fetch_one("SELECT id,module,dir,type FROM $table_tree WHERE alias='$alias' AND pid='$parent' AND type='$type'");
				if($part!=false)
				{
					$parsed_url[$i]=$part;
					if(isset($chapter))
					{
						unset($parsed_url[$chapter]['over']);
					}
					$chapter = $i;$parsed_url[$chapter]['over'].="/";
					return $parsed_url;
				}
				elseif(isset($chapter))
				{
					$parsed_url[$chapter]['over'].=$alias."/";
					return $parsed_url;
				}
				else
				{
					$over = $alias;break;
				}
			}
			elseif($type=='1')
			{
				$part = $db->fetch_one("SELECT id,module,dir,type FROM $table_tree WHERE alias='$alias' AND pid='$parent' AND type='$type'");
				// если страница с таким альясом и родителем существует...
				if($part!=false)
				{
					$parsed_url[$i]=$part;
					if(isset($chapter))
					{
						unset($parsed_url[$chapter]['over']);
					}
					$chapter = $i;$parsed_url[$chapter]['over'].="/";
					$parent=$parsed_url[$i]['id'];
					$i++;
				}
				// если нет, но есть родительский модуль - возвращаем то, что нашли
				elseif(isset($chapter))
				{
					$parsed_url[$chapter]['over'].=$alias."/";
					//return $parsed_url;				
				}
				else
				{
					$over = $alias;break;
				}
			}
			
		}
		
	}
	if(empty($parsed_url))
	{
		$part = $db->fetch_one("SELECT id,module,dir FROM $table_tree WHERE id='0'");
		$parsed_url[$i]=$part;
		$parsed_url[$i]['over'] = $over;
	}
	return $parsed_url;
}
function print_var($var, $var_name = '')
{
    echo '<pre style="clear:both;background:#ffe5b9;border:1px solid #ffa200;">'.$var_name.'<BR>';

    print_r($var);

    echo '</pre><BR style="clear:both;">';
}
/** START 	MakeAlias - создание альяса латиницей с проверкой на существование **/
function makeAlias($item_title,$module)
{
	global $db;
    $title = strtolower(trim($item_title));

    $alias = $title;
    if (strlen($title) > 0)
    {
         
        $eng = Array ('a', 'b', 'v', 'g', 'd', 'e', 'e', 'j', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', 'i', '', '', 'e', 'u', 'ya','a', 'b', 'v', 'g', 'd', 'e', 'e', 'j', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', 'i', '', '', 'e', 'u', 'ya');
        $rus = Array ('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ы', 'ъ', 'ь', 'э', 'ю', 'я','А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ы', 'Ъ', 'Ь', 'Э', 'Ю', 'Я');
        
        
        foreach ($rus as $k=>$v)
        {
            $alias = str_replace($v, $eng[$k], $alias);
        }
        
        $alias = str_replace(" ", "_", $alias);
        $alias = preg_replace("/\W+/","", $alias);
        $alias = str_replace("___", "_", $alias);
        $alias = substr(str_replace("__", "_", $alias),0, 95);
        switch($module)
        {
        	case "flash":
        		$table_items = $db->pfx."flash_games";
		        $is_exists = $db->fetch_one("SELECT count(*) FROM $table_items WHERE alias = '".mysql_real_escape_string($alias,$db->link)."'");
		        if ($is_exists[0] > 0)
		        {
		            $i=1;$fin = false;
		            while ($fin === false)
		            {
		                $check_alias = $alias."_".$i;
		                $is_exists = $db->fetch_one("SELECT count(*) FROM $table_items WHERE alias = '".mysql_real_escape_string($check_alias,$db->link)."'");
		                if ($is_exists[0] > 0)
		                {
		                    $i++;
		                }
		                else
		                {
		                    $alias = $check_alias;
		                    $fin = true;
		                }
		            }
		        }
        	break;
        }
        return $alias;
    }
    else 
    {
        return false;
    }
	
}
/** END 	MakeAlias - создание альяса латиницей с проверкой на существование **/
function per_page_navigation ($kolvo, $per_page = 20, $from = 0)
{
	global $smarty;

	$newstring = '';

	if ($_SERVER['QUERY_STRING'] != '')
    {
        $query_string = $_SERVER['QUERY_STRING'];
        $query_string = preg_replace("/from=\d+/","",$query_string);

        $ss = preg_match_all("/\w+=\w*/i", $query_string, $res);
        $add_qs = array();
        if (!empty($res[0]))
        {
            foreach ($res[0] as $k=>$v)
            {
                if (!in_array($v,$add_qs))
                {
                    $newstring .= '&'.$v;
                    $add_qs[] = $v;
                }
            }
        }
    }

	$nav_links['first'] = '-1';
	$nav_links['last'] = '-1';
	$nav_links['next'] = '-1';
	$nav_links['prev'] = '-1';

	if ($kolvo > 0)
	{
		$kolvo_pages = ceil($kolvo/$per_page);

	    $max = $kolvo_pages;
	    $all_pages = range(0, $kolvo_pages);

	    if ($kolvo > $per_page) $smarty->assign("nav_kolvo", $max);

	    $first = $from - 5;
	    $last = $from + 5;

	    $next = $from + 1;
	    $prev = $from - 1;

	    if ($prev < 0) $prev = -1;


	    if ($first < 0) $first = 0;

	    if ($first > 0) $nav_links['first'] = $first - 1;

	    if ($last < $max) $nav_links['last'] = $last;

	    if ($next >= $max) $next = -1;

	    $nav_links['max'] = $max - 1;

	    if ($last > $max) $last = $max;

	    $i = $first;

	    while ($i < $last)
	    {
	        $nav_pages[] = $all_pages[$i];
	        $i++;
	    }

	   $nav_links['next'] = $next;
	   $nav_links['prev'] = $prev;
	   if ($newstring != '')
	   {
        $nav_links['qstring'] = $newstring;
        }
	    $smarty->assign("nav_pages", $nav_pages);


	    $smarty->assign("now", $from);
	}
	$smarty->assign("nav_links", $nav_links);

}
function uni_word_end ($word, $chislo, $ext = array("ев", "я", "й"), $show_num = '0', $insert_nbsp = '1')
{
    $num = $chislo;
	$word_end = '';

	if ($chislo>99)
	{
		$chislo = substr($chislo, -2);
	}

	if ($chislo >= 11 AND $chislo <= 14)
        $word_end = $ext[0];
    elseif (substr($chislo, -1) == '2' || substr($chislo, -1) == '3' || substr($chislo, -1) == '4')
        $word_end = $ext[1];
    elseif (substr($chislo, -1) == '1')
        $word_end = $ext[2];
    elseif (substr($chislo, -1) == '0')
        $word_end = $ext[0];
    else
        $word_end = $ext[0];

	if(intval($insert_nbsp) == 1) $word = ' '.$word;
    if ($show_num == '1') return $num.$word.$word_end;
	else return $word.$word_end;
}

?>